A New Module System for Prolog
نویسندگان
چکیده
It is now widely accepted that separating programs into modules is useful in program development and maintenance. While many Prolog implementations include useful module systems, we argüe that these systems can be improved in a number of ways, such as, for example, being more amenable to effective global analysis and transformation and allowing sepárate compilation or sensible creation of standalone executables. We discuss a number of issues related to the design of such an improved module system for Prolog and propose some novel solutions. Based on this, we present the choices made in the Ciao module system, which has been designed to meet a number of objectives: allowing sepárate compilation, extensibility in features and in syntax, amenability to modular global analysis and transformation, enhanced error detection, support for meta-programming and higher-order, compatibility to the extent possible with official and de-facto standards, etc.
منابع مشابه
Modules for Prolog Revisited
Module systems are an essential feature of programming languages as they facilitate the re-use of existing code and the development of general purpose libraries. Unfortunately, there has been no consensual module system for Prolog, hence no strong development of libraries, in sharp contrast to what exists in Java for instance. One difficulty comes from the call predicate which interferes with t...
متن کاملNew Strategy of Grid Connected Photovoltaic System Using Module Integrated Converters with B4 Inverter to Overcome Partial Shading Effect
This paper proposes a new configuration for solar energy conversion systems. One challenging issue of the photovoltaic (PV) systems is partial shading, and in this paper Module Integrated Converters (MIC) are used to overcome this problem in PV arrays. A few boost converters are employed as MICs to mitigate the shading effect. Furthermore, to reduce the cost and to increase the system performan...
متن کاملar X iv : 1 30 1 . 77 02 v 1 [ cs . P L ] 3 1 Ja n 20 13 The Ciao CLP ( FD ) Library A Modular CLP Extension for Prolog ( System
We present a new free library for Constraint Logic Programming over Finite Domains, included with the Ciao Prolog system. The library is entirely written in Prolog, leveraging on Ciao’s module system and code transformation capabilities in order to achieve a highly modular design without compromising performance. We describe the interface, implementation, and design rationale of each modular co...
متن کاملAn External Module for Implementing Linear Tabling in Prolog
In previous work [1], we have presented a proposal to combine the power of tabling with the Extended Andorra Model (EAM) in order to produce an execution model with advanced control strategies that guarantees termination, avoids looping, reduces the search space, and is less sensitive to goal ordering. To address the integration between tabling and the EAM, through the BEAM system [2], we have ...
متن کاملReintroducing PyLogical
Python is a modern scripting language that has embraced a largely objectoriented framework, but has also supported a number of functional programming constructs. In previous work, we introduced extensions to increase the functional programming capabilities of the language and we also introduced a novel purely-python module that implemented a logic programming style pseudo-syntax. That module wa...
متن کامل